Virtual Machine Snapshot Backup Based on Multilayer De-duplication

ABSTRACT

The present disclosure provides an example method and system for virtual machine backup based on multilayer de-duplication. A virtual machine snapshot is divided into multiple child data blocks. Each child data block is divided into multiple data segments. Multilayer de-duplication is applied to the virtual machine snapshot to exclude data causing duplicate backup in the virtual machine snapshot. The remaining virtual machine snapshot data after the processing of the multilayer de-duplication is stored.

CROSS REFERENCE TO RELATED PATENT APPLICATIONS

This application claims foreign priority to Chinese Patent Application No. 201210291388.6 filed on 15 Aug. 2012, entitled “Method and System of Virtual Machine Snapshot Backup Based on Multilayer De-duplication,” which is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The present disclosure relates to the field of computers, and more specifically, to a method and a system for virtual machine snapshot backup based on multilayer de-duplication.

BACKGROUND

A conventional virtual machine system provides system snapshot service to users. That is, a complete snap shot is conducted to a virtual machine disk image. A virtual machine snapshot backup system is a sub-system of the virtual machines system and manages all historical data of a virtual machine user at PB level. Thus, increasing storage efficiency of the virtual machine snapshot backup system is very important to reduce virtual machine usage costs for the users and increase storage utilization efficiencies of machine clusters.

To handle large-scale data backup requests in real-time and efficiently exclude duplicate data, the virtual machine snapshot backup system may need to meet at least three conditions. The first one is a high data processing speed such that backup of thousands of virtual machines can be completed within three hours at night every day. The second one is an excellent de-duplication effect to exclude most redundant data (such as removing at least 70% redundant data). The third one is low resource utilization. The virtual machine snapshot system, as the sub-system of the virtual machine system, cannot compete with other important modules of the virtual machine system for resources. Otherwise, user experience of the virtual machine would be affected.

One example conventional technique for de-duplication of the virtual machine snapshot backup is an EBS snapshot store technique which is provided by a cloud computing platform of Amazon™. Details please see http://aws.amazon.com/ebs/. The technique divides each virtual machine disk into a fixed size block with 4 MB and tracks change information of each block during usage. If one block is determined as having no change as of preceding backup snapshot, such a block of data is not backed. Another example conventional technique is a backup de-duplication storage server provided by the special storage technology provider such as ECM™, which divides the backup data into various data block according to content characteristics and detects the redundant data according to Hash check.

The technique of Amazon™ determines the data for backup solely based data revision record of a single virtual machine. It has at least the following disadvantages. First, even though the data in the block is only revised by one byte, the whole data needs backing up. In addition, with respect to the scenario that different users back up the same data, such as an operating system and various frequently used applications, disk location of such data may be not uniform due to differences of user behaviors. The technique of Amazon™ cannot detect such kind of redundant data.

Although the technique of EMC™ may exclude redundant data according to data characteristics, the price of its special storage server is very high and cannot meet the backup requirements of virtual machine clusters at TB level. Neither are such techniques compatible with the cloud computing system with cheap price and huge data volume.

SUMMARY

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify all key features or essential features of the claimed subject matter, nor is it intended to be used alone as an aid in determining the scope of the claimed subject matter. The term “techniques,” for instance, may refer to apparatus(s), system(s), method(s) and/or computer-readable instructions as permitted by the context above and throughout the present disclosure.

The present disclosure provides an example method for virtual machine backup based on multilayer de-duplication. A virtual machine snapshot is divided into multiple child data blocks. Each child data block is divided into multiple data segments. Multilayer de-duplication is applied to the virtual machine snapshot to exclude data causing duplicate backup in the virtual machine snapshot. The remaining virtual machine snapshot data after the processing of the multilayer de-duplication is stored.

For example, the multilayer de-duplication of the virtual machine snap shot may include the following. De-duplication of the child data blocks, de-duplication of the data segments, and de-duplication of a public data set are applied to the virtual machine snap shot. The public data set centrally stores one or more data segments whose repetition rates are higher than a preset threshold in a backup storage file system.

For example, the de-duplication of the child data blocks may include the following operations. It is determined whether there is any change of the child data blocks since a preceding backup. Unchanged child data blocks are excluded and changed child data blocks are reserved.

For example, the de-duplication of the data segments may include the following operations. It is determined whether remaining data segments in the changed child data blocks after the de-duplication of the child data blocks have changed since the preceding backup. Unchanged data segments are excluded and changed data segments are reserved.

For example, the de-duplication of the public data set may include the following operations. One or more characteristics of the changed data segments remaining after the de-duplication of the data segments are compared with one or more characteristics of data in the public data set to determine whether the changed data segments exist in the public data set. A data segment that is determined to exist in the public data set is excluded.

For example, the operation for dividing each child data block into the multiple data segments may include the following. Each child data block is divided into multiple data segments with variant lengths or sizes.

For example, the virtual machine snap shot includes data fingerprints, data sizes and data pointers of the child data blocks. Each child data block includes data fingerprints, data sizes and data pointers of the child data blocks of the data segments.

For example, the example method may further include the following operations. The backup storage file system is periodically scanned. Based on data repetition characteristics of data storage, data whose repetition rate is higher than a preset threshold is saved into the public data set.

For example, the example method may further include the following operations. With respect to the data that has been excluded by the multilayer de-duplication, index of corresponding data in a previous virtual machine snap shot may be directly cited by the current virtual machine snap shot.

For example, the example method may further include performing a rollover of snapshot. An index of child data blocks is read from the backup storage file system according to an index of a to-be-rollover snapshot of the virtual machine. The data segments are read according to the index of the child data blocks. The read data segments are formed into the child data blocks. The formed child data blocks are formed into the to-be-rollover snapshot. By reference to revision information of the current virtual machine mirror file and the index information of the to-be-rollover snapshot, common data in the current virtual machine mirror file and the to-be-rollover snapshot is determined. The common data is not necessary to be read from the backup storage file system.

For example, the example method may further include deleting the snapshot. Deletion information of an index of to-be-deleted snapshot of the virtual machine is written into a log. When deletion information volume in the log is larger than a preset threshold, the backup data of the virtual machine is scanned to find child data block and data segments that have not been referenced for a certain period of time and delete them.

The present disclosure also provides an example system for virtual machine backup based on multilayer de-duplication, which may include a snapshot division module, a snapshot multilayer de-duplication module, and a snapshot backup storage module. The snapshot division module divides a virtual machine snapshot into multiple child data blocks and divides each child data block into multiple data segments. The multilayer de-duplication module applies multilayer de-duplication to the virtual machine snapshot to exclude data causing duplicate backup in the virtual machine snapshot. The snapshot backup storage module stores remaining snapshot data after the processing of the multilayer de-duplication.

For example, the example system may further include a scan module, a snapshot rollover module, and a snapshot deletion module.

The present techniques use the multilayer de-duplication techniques, based on distribution characteristics of repetition times of data segments stored in large-scale data, efficiently and effectively exclude backing up certain data, thereby using less resources to achieve de-duplication effects.

BRIEF DESCRIPTION OF THE DRAWINGS

To better illustrate embodiments of the present disclosure, the following is a brief introduction of the FIGs to be used in the description of the embodiments. It is apparent that the following FIGs only relate to some embodiments of the present disclosure. A person of ordinary skill in the art can obtain other FIGs according to the FIGs in the present disclosure without creative efforts. The example embodiments and their specifications are used to illustrate the present disclosure and shall not constitute inappropriate restrictions to the present disclosure.

FIG. 1 is a diagram of an example implementation of virtual snapshot backup based on multilayer de-duplication in accordance with an example embodiment of the present disclosure.

FIG. 2 is a flow chart of an example method for virtual machine snapshot backup based on multilayer de-duplication in accordance with the example embodiment of the present disclosure.

FIG. 3 is a diagram of an example system for virtual machine snapshot backup based on multilayer de-duplication in accordance with the example embodiment of the present disclosure.

FIG. 4 is a diagram of an example snapshot multilayer de-duplication module in the example system as shown in FIG. 3.

DETAILED DESCRIPTION

Under the present techniques, a virtual machine snapshot is divided into multiple child data blocks. Each child data block is divided into multiple data segments. Multilayer de-duplication is applied to the virtual machine snapshot.

For example, the multilayer de-duplication of the virtual machine snap shot may include the following. De-duplication of the child data blocks, de-duplication of the data segments, and de-duplication of a public data set are applied to the virtual machine snap shot one-by-one to exclude data that may cause duplicate backup in the virtual machine snapshot. The public data set centrally stores one or more data segments whose repetition rates are higher than a preset threshold in a backup storage file system and virtual machine snapshot data remaining after the processing of the multilayer de-duplication.

To better illustrate the present techniques, the present disclosure is described by reference to the FIGs. The present disclosure provides an example method and system for virtual machine backup based on multilayer de-duplication.

FIG. 1 is a diagram of an example implementation of virtual snapshot backup based on multilayer de-duplication in accordance with an example embodiment of the present disclosure.

As shown in FIG. 1, in accordance with an example method for virtual machine backup based on multilayer de-duplication, the virtual machine snapshot is divided into multiple child blocks to be ready for multilayer de-duplication. From the perspective of implementation, the multilayer de-duplication may be divided into three levels. Most redundant data of each level is excluded at such level based on specific information to reduce the burden of de-duplication at a next level. From the perspective of logics, the first two levels are directed to internal de-duplication of backup data of a single virtual machine and are mainly to filter unchanged data as of preceding backup. A third level is to exclude data that has a high repetition rate from the respective of a universal de-duplication 104. The implementation is generally described by reference to FIG. 1.

Firstly, a child data block de-duplication 106 is implemented from (a) to (b). For example, this level may use visiting information recorded by one or more virtual disks to determine portions of the virtual disks that have not changed since the preceding backup. For those unchanged portions, a new snapshot index directly links to child data block contents of last snapshot. Those child data blocks that are already marked as revised are further processed by a next level de-duplication.

Secondly, with respect to data after the child data block de-duplication 108, a data segment de-duplication 108 from (b) to (c) is implemented. This level is mainly directed to those unrevised or unchanged data in the child data blocks which are marked as “revised.” For example, a variant length cutting algorithm based on data content characteristics may be used to cut a respective child data block into hundreds of data segments. Based on an index of a corresponding child data block in a previous snapshot at a location of a current child data block, data fingerprint of the two child data blocks are compared to determine which data segments are revised. With respect to those same data segments that are found from the previous snapshot, the index of the current child data block may directly link to them.

With respect to data after the above two levels of de-duplication, a public data set de-duplication 110 from (c) to (d) is implemented. This level is mainly directed to the data segments that are determined as revised at a previous level. For example, hash values of contents of all data segments entered into this level are sent to a cache of a distributive public data set for inquiry. If it is found that a respective data segment belongs to the public data set, it is not necessary to save another copy. Otherwise, the respective data segment is used as new data to be submitted to a snapshot backup storage module. In other words, virtual snapshot data after the above multiple levels of de-duplication are written 112 into a snapshot backup storage 114.

For example, the snapshot may include respective data fingerprints, data sizes and data pointers of one or more child data blocks. Each child data block may include respective data fingerprints, data sizes and data pointers of the child data blocks of one or more data segments. Between snapshots of a respective virtual machine, if one or more child data blocks or data segments are determined as having the same contents, a current snapshot will use or link to data of a previous snapshot without redundant storage. Unless specified otherwise, snapshots, virtual snapshots, and virtual machine snapshots may have similar meanings in the present disclosure. A data pointer may refer to a physical storage location of data. For example, the data pointer may be represented as <file name, initial deviation> to indicate the storage location. Alternatively, a key in key-value (KV) service may be used as the data pointer to indicate the storage location.

FIG. 2 illustrates a flow chart of the example method for virtual machine snapshot backup based on multilayer de-duplication in accordance with the example embodiment of the present disclosure.

At 202, a snapshot is divided into multiple child data blocks and each child data block is divided into multiple data segments. For instance, the child data blocks may have fixed lengths while the data segments may have variant lengths. Optionally, a respective child data block may be divided into multiple data segments with multiple different lengths based on characteristics of data contents.

For example, a snapshot may be divided into multiple child data blocks with megabytes (MB) size. Optionally, the snapshot may be divided into multiple child data blocks with megabytes (MB) size and each child data block may be divided into multiple data segments with variant kilobytes (KB) sizes based on a cutting algorithm based on data content characteristics. For example, the snapshot may include respective data fingerprints, data sizes and data pointers of one or more child data blocks. Each child data block may include respective data fingerprints, data sizes and data pointers of the child data blocks of one or more data segments.

At 204, multilayer de-duplications are applied to the snapshot to exclude data in the snapshot that may cause duplicate backup. For example, a three level de-duplication, such as de-duplication of the child data blocks, de-duplication of the data segments, and de-duplication of a public data set may be applied. The public data set centrally stores one or more data segments whose repetition rates are higher than a preset threshold in a backup storage file system.

For example, a first level of de-duplication may be firstly implemented. That is, the de-duplication of the child data blocks may be implemented. It is determined whether there is any change of the child data blocks since a preceding backup. Unchanged child data blocks are excluded and changed child data blocks are reserved. The changed child data blocks are used in the de-duplication of the data segments.

In other words, the first level of de-duplication may, for example, use visiting information recorded by one or more virtual machine disk mirrors to compare child data blocks of a current snapshot with child data blocks of a previous snapshot by using a respective child data block as a unit. Child data bocks with the same contents in the current snapshot and the previous snapshot are determined as unchanged child data blocks to be excluded. Thus, unchanged child data blocks are excluded after the first level of de-duplication.

Secondly, a second level of de-duplication may be implemented. That is, the de-duplication of the data segments may be implemented. It is determined whether data segments in the child data blocks that remain after the de-duplication of the child data blocks have changed since the preceding backup. Unchanged data segments are excluded and changed data segments are reserved. The changed data segments may be used in the de-duplication of the public data set.

In other words, the second level of de-duplication may, for example, based on an index of a corresponding child data block in the previous snapshot at a location of a current child data block remaining after the de-duplication of the child data blocks by using a respective data segment as a unit, compare the data segments in the current snapshot after the first level of de-duplication with the data segments in the previous snapshot. Data segments with the same contents are determined as unchanged data segments to be excluded. Thus, unchanged data segments are excluded after the second level of de-duplication.

Then, a third level of de-duplication is implemented. That is, a de-duplication of the public data set is implemented. One or more characteristics of the changed data segments remaining after the de-duplication of the data segments are compared with one or more characteristics of data in the public data set to exclude data segments that are determined to be existent in the public data set and to preserve data segments that are non-existent in the public data set. Data segments remaining after the multilayer de-duplication are backed up.

In other words, at the third level of de-duplication, the data fingerprints of the data segments in the current snapshot remaining after the above two levels of de-duplication may be calculated by using an algorithm such as SHA1 hash algorithm. Such hash values are sent to a cache of a distributive public data set for inquiry. The data segments that are existent in the public data set are determined to be unchanged data segments. Such unchanged data segments are to be excluded. Thus, unchanged data segments are excluded at the third level of de-duplication. The data segments remaining after the multilayer de-duplications are stored for backup.

At 206, snapshot data remaining after the multilayer de-duplications are stored.

For example, the data excluded from the multilayer de-duplications may be directly referred to an index of corresponding data in the previous snapshot.

For example, the example method may further include performing a rollover of a snapshot. An index of child data blocks is read from the backup storage file system according to an index of a to-be-rollover snapshot of the virtual machine. The data segments are read according to the index of the child data blocks. The read data segments are formed into the child data blocks. The formed child data blocks are formed into the to-be-rollover snapshot. By reference to revision information of the current virtual machine mirror file and the index information of the to-be-rollover snapshot, common data in the current virtual machine mirror file and the to-be-rollover snapshot is determined. The common data is not necessary to be read from the backup storage file system.

For example, the example method may further include deleting the snapshot. Deletion information of an index of the to-be-deleted snapshot of the virtual machine is written into a log. When deletion information volume in the log is larger than a preset threshold, the backup data of the virtual machine is scanned to find child block data and data segments that have been referenced for a certain period of time and delete them. For instance, when the deletion information volume in the log is higher than 50% of total information in the snapshot, the backup data of the virtual machine is scanned to find child data blocks and data segments that have not been reference in, for example, 14 days or 30 days. Such found child data blocks and data segments are then deleted.

FIG. 3 is a diagram of an example system Snap for virtual machine snapshot backup based on multilayer de-duplication in accordance with the example embodiment of the present disclosure.

The example system 300 may include one or more processor(s) 302 and memory 304. The memory 304 is an example of computer-readable media. As used herein, “computer-readable media” includes computer storage media and communication media.

Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-executed instructions, data structures, program modules, or other data. In contrast, communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave. As defined herein, computer storage media does not include communication media. The memory 304 may store therein program units or modules and program data.

In the example of FIG. 3, the memory 304 may store therein a snapshot division module 306, a snapshot multilayer de-duplication module 308, and a snapshot backup storage module 310. The snapshot division module 306 divides a virtual machine snapshot into multiple child data blocks and divides each child data block into multiple data segments. The multilayer de-duplication module 308 applies multilayer de-duplication to the virtual machine snapshot to exclude data causing duplicate backup in the virtual machine snapshot. The snapshot backup storage module 310 stores snapshot data remaining after the processing of the multilayer de-duplication.

For example, the multilayer de-duplication module 308 implements multilayer de-duplication, which may include two or more de-duplication sub-modules. FIG. 4 illustrates a diagram of an example multilayer de-duplication module 400. The multilayer de-duplication module 400 includes a child data block de-duplication module 402, a data segment de-duplication module 404, and a public data set de-duplication module 406. The public data set centrally stores one or more data segments whose repetition rates are higher than a preset threshold in a backup storage file system.

For example, the child data block de-duplication module 402 may determine whether one or more child data blocks have changed since the preceding backup, exclude one or more determined unchanged child data blocks, and keep one or more determined changed child data blocks.

For example, the data segment de-duplication module 404 may determine whether one or more data segments in the one or more child data blocks remaining after the child data block de-duplication have changed since the preceding backup, exclude one or more determined unchanged data segments, and keep one or more determined changed data segments.

For example, the public data set de-duplication module 406 may compare one or more characteristics of the changed data segments remaining after the data segment de-duplication with one or more characteristics of data in the public data set to exclude data segments that are determined to be existent in the public data set and to preserve data segments that are not existent in the public data set.

In accordance with the example embodiment, the system 300 may further include a scan module, a snapshot rollover module, and a snapshot deletion module (not shown in the FIGs).

For example, the scan module may periodically scan the backup storage file system and, based on data repetition characteristics of data storage, save data whose repetition rate is higher than a preset threshold into the public data set. For instance, the scan module may scan the data and, based on features of Zipf distribution of repetitive data characteristic in large-scale data storage, extract a batch of data with a highest repetitive rate into the public data set.

For example, the snapshot rollover module may read an index of child data blocks read from the backup storage file system according to an index of a to-be-rollover snapshot of the virtual machine, and read the data segments according to the index of the child data blocks. The snapshot rollover module may also form the read data segments into the child data blocks and form the formed child data blocks into the to-be-rollover snapshot. The snapshot rollover module may, by reference to revision information of the current virtual machine mirror file and the index information of the to-be-rollover snapshot, determine common data in the current virtual machine mirror file and the to-be-rollover snapshot. The common data is not necessary to be read from the backup storage file system.

For example, the snapshot deletion module may write deletion information of the index of to-be-deleted snapshot of the virtual machine into a log. When deletion information volume in the log is larger than a preset threshold, the snapshot deletion module may scan the backup data of the virtual machine to find child block data and data segments that have not been referenced for a certain period of time and delete them.

The detailed implementations of the modules included in the system 300 of the present disclosure correspond to those the operations in the example method. For the purpose of brevity, detailed implementations of the modules are not described herein.

The present techniques may eliminate duplicate backup of frequently used data based on the features of Zipf distribution in repetitive times of data segments in large-scale data storage to use limited resources to maximize the de-duplication effects. The virtual machine backup storage system periodically performs scanning tasks of universal data segments to calculate appearance frequencies of the data child data blocks. Based on resource restrictions of an actual system, the resent techniques introduce the data segments with high rankings into the public data set. Hash vales of contents of the data segments in the public data set are stored in the cache of the distributive public data set as an index of the inquiry at the third level of de-duplication.

One of ordinary skill in the art would understand that the modules and operations as described in the present disclosure may be implemented by hardware, computer software, or a combination thereof. To illustrate the interchangeability between hardware and software, the present disclosure generally describes components and operations in each example embodiment according to their functionalities. Whether such functionalities are implemented by hardware or software is dependent on specific applications of technical solutions and design constraints. One of ordinary skill in the art would use different methods for different specific application scenarios to implement the described functionalities. Such implementation shall not be deemed as out of the protection scope of the present disclosure.

The present techniques may be implemented through hardware, software, or a combination thereof. The hardware may be implemented by specific logic. The software may be stored at one or more computer storage media and implemented by a proper instruction implementation system such as one or more processors or specifically designed processing device. One of ordinary skill in the art would understand that the above devices, systems, and methods can be implemented by computer-executable instructions and/or control codes embedded in the processors. For example, disk, CD or DVE-Rom, read-only memory (ROM), programmable read-only memory (PROM) or any other optical or electronic signal carrier media may store such instructions or codes. The devices and their modules may be implemented by very-large-scale integrated circuit or gate array, semiconductors such as logic circuits or transistors, or circuits of programmable hardware device such as field Programmable Gate Array (FPGA), programmable logic device, any other computer-executable instruction executed by the processors, or a combination of any of the above hardware circuits and software.

Although the present disclosure describes several modules or sub-modules of the devices, a division of such modules or sub-modules are not mandatory. For example, functionalities and characteristics of two or more modules may be integrated into one module. Functionalities and characteristics of one module may be further divided into multiple modules.

Although the present disclosure and the FIGs describe operations in certain sequence, it does not require or imply that the operations have to be implemented according to such sequences or all operations have to be implemented to achieve the desired result. In contrast, some steps in the FIGs may have different implementing sequences. Additionally or optionally, some operations may be omitted; multiple steps may be integrated into one step; or one step is divided into multiple steps.

The above descriptions illustrate example embodiments of the present disclosure. The embodiments are merely for illustrating the example embodiments and are not intended to limit the scope of the present disclosure. It should be understood by one of ordinary skill in the art that certain modifications, replacements, and improvements can be made and should still be considered under the protection of the present disclosure without departing from the principles of the present disclosure. 

1-20. (canceled)
 21. A computer-implemented method for virtual machine snapshot backup, comprising: dividing a virtual machine snapshot of a virtual machine into one or more child data blocks; applying a child data block de-duplication to exclude all child data blocks that are determined as unchanged since last snapshot; dividing each of child data blocks marked as revised into a number of data segments; applying a data segment de-duplication on each of the child data blocks to exclude from the number of data segments all data segments that are determined as unchanged since last snapshot; applying a public data set de-duplication on data segments of the child data blocks that are determined as revised after the data segment de-duplication to exclude data segments that belong to a public data set; and storing child data blocks and data segments that are not excluded as a virtual machine snapshot backup for the virtual machine snapshot.
 22. The computer-implemented method according to claim 21, wherein the public data set stores one or more data segments selected based on historical data of backup storage file system.
 23. The computer-implemented method according to claim 22, wherein the one or more data segments are selected as those with repetition rates higher than a preset threshold in the backup storage file system.
 24. The computer-implemented method according to claim 21, wherein the public data set is centrally stored without considering boundaries of the child data blocks.
 25. The computer-implemented method according to claim 21, wherein applying a child data block de-duplication further includes: determining a child data block as unchanged since last snapshot based on visiting information recorded by one or more virtual disks; creating a new snapshot index to the unchanged child data block and directly linking to a corresponding child data block of last snapshot; and excluding the unchanged child data block from further de-duplication.
 26. The computer-implemented method according to claim 21, wherein dividing each of child data blocks marked as revised further includes: based on a variant length cutting algorithm based on data content characteristics, dividing each of child data blocks marked as revised into a substantially large number of data segments.
 27. The computer-implemented method according to claim 21, wherein applying a data segment de-duplication further includes: based on an index of a corresponding previous child data block in last snapshot at a location of a current child data block, comparing data fingerprints of the previous child data blocks and the current child data block to determine which data segments in the current child data block are revised; and directly linking an index of the current child data block to the data segment determined as unchanged.
 28. The computer-implemented method according to claim 21, wherein applying a public data set de-duplication further includes: calculating data fingerprints of the data segments using a predetermined algorithm; sending the data fingerprints to the public data set to determine data segments that are existent in the public data set as unchanged data segments; and excluding the unchanged data segments.
 29. The computer-implemented method according to claim 28, wherein the predetermined algorithm is an SHAI hash algorithm.
 30. The computer-implemented method according to claim 21, wherein the virtual machine snapshot comprises data fingerprints, sizes, and data points of the one or more child data blocks.
 31. The computer-implemented method according to claim 21, wherein respective child data block comprises data fingerprints, sizes, and data points of the number of data segments.
 32. The computer-implemented method according to claim 21, further comprising: writing into a log deletion information of an index of virtual machine snapshot backup; when deletion information volume in the log is larger than a preset threshold, determining that a condition for deletion is met; and deleting the virtual machine snapshot backup.
 33. A system for virtual machine snapshot backup, comprising: a processor; and a memory coupled to the processor for storing computer programs to be executed by the processor, wherein the processor is configured to: divide a virtual machine snapshot of a virtual machine into one or more child data blocks; apply a child data block de-duplication to exclude all child data blocks that are determined as unchanged since last snapshot; divide each of child data blocks marked as revised into a number of data segments; apply a data segment de-duplication on each of the child data blocks to exclude from the number of data segments all data segments that are determined as unchanged since last snapshot; apply a public data set de-duplication on data segments of the child data blocks that are determined as revised after the data segment de-duplication to exclude data segments that belong to a public data set; and store child data blocks and data segments that are not excluded as a virtual machine snapshot backup for the virtual machine snapshot.
 34. The system according to claim 33, wherein the public data set stores one or more data segments selected based on historical data of backup storage file system.
 35. The system according to claim 34, wherein the one or more data segments are selected as those with repetition rates higher than a preset threshold in the backup storage file system.
 36. The system according to claim 33, wherein the public data set is centrally stored without considering boundaries of the child data blocks.
 37. The system according to claim 33, wherein, to apply a child data block de-duplication, the processor is further configured to: determine a child data block as unchanged since last snapshot based on visiting information recorded by one or more virtual disks; create a new snapshot index to the unchanged child data block and directly linking to a corresponding child data block of last snapshot; and exclude the unchanged child data block from further de-duplication.
 38. The system according to claim 33, wherein, to divide each of child data blocks marked as revised, the processor is further configured to: based on a variant length cutting algorithm based on data content characteristics, divide each of child data blocks marked as revised into a substantially large number of data segments.
 39. The system according to claim 33, wherein, to apply a data segment de-duplication, the processor is further configured to: based on an index of a corresponding previous child data block in last snapshot at a location of a current child data block, compare data fingerprints of the previous child data blocks and the current child data block to determine which data segments in the current child data block are revised; and directly link an index of the current child data block to the data segment determined as unchanged.
 40. The system according to claim 33, wherein, to apply a public data set de-duplication, the processor is further configured to: calculate data fingerprints of the data segments using a predetermined algorithm; send the data fingerprints to the public data set to determine data segments that are existent in the public data set as unchanged data segments; and exclude the unchanged data segments. 